// 差管家类型 备注 投放状态
export interface AccountVO extends BaseEntity {
  accountId: string | number;
  accountName: string;
  email: string;
  displayName: string;
  remark?: any;
  materialAuthStatus: number;
  validStatus: number;
}

/**
 * UpdateToolsWechatAppletReq
 */

export interface AccountQuery extends PageQuery {
  // orderByColumn: string;
  // isAsc: string;
  accountName: string;
}

export interface AccountForm {
  status: string;
}

export interface AaccountAdvertiserQuery extends PageQuery {
  accountId: number; //账号id
  advertiserName?: string; //广告主名称
}
export interface AaccountAdvertiserVO extends BaseEntity {
  advertiserId: number; //广告主id
  advertiserName: string; //广告主名称
  advCompanyName: string; //广告主公司名称
}

export type AppPageVO = {
  link: string;
  linkRemark?: string;
  startPage?: string;
  endPage?: string;
};

export interface MicroAppVO extends BaseEntity {
  accountId: number; //账号id
  advertiserId: number; //广告主id
  appId: string;
  remark?: string;
  appPage: AppPageVO;
  tagInfo: string;
}

/**
 * ShareDpAssetManagementReq
 */
export interface ShareDpAssetManagementReq {
  /**
   * 共享账号信息，当share_mode= PART时有效且必填，一次共享最多支持100个账号信息
   */
  accountInfos?: ToolsBpAssetManagementShareV30RequestAccountInfosInner[] | null;
  /**
   * 共享类型 可选值:
   * 共享账号类别，当share_mode 为BP_ALL_ACCOUNTS时有效且必填，一次最多操作1个，枚举值：AD 广告
   */
  allAccountsByBp?: string[] | null;
  /**
   * 公司主体信息，一次最多操作1个
   * 当share_mode为 COMPANY_ALL_ACCOUNTS时有效且必填
   */
  allAccountsByCompany?: ToolsBpAssetManagementShareV30RequestAllAccountsByCompanyInner[] | null;
  /**
   * 资产类型 可选值:
   *
   * APPLETS 微信小程序
   * WECHAT_GAME 微信小游戏
   * BYTED_APPLETS 字节小程序
   * BYTED_GAME 字节小游戏
   */
  assetType?: AssetType;
  /**
   * 字节小程序资产ID，通过【工具】-【获取字节小程序/小游戏】获取
   */
  instanceId?: number | null | string;
  /**
   * 组织id
   */
  organizationId?: number | null;
  /**
   * 共享类型 可选值:
   *
   * BP_ALL_ACCOUNTS 组织内所有账户共享
   * COMPANY_ALL_ACCOUNTS 公司主体内所有账户共享
   * PART 指定账户共享
   */
  shareMode?: ShareMode;
  [property: string]: any;
}
//ShareCancelDpAssetManagementReq
export interface ShareCancelDpAssetManagementReq {
  organizationId?: number | null;
  assetType?: AssetType;
  instanceId?: number | null | string;
  accountInfos?: ToolsBpAssetManagementShareV30RequestAccountInfosInner[] | null;
  shareMode?: ShareMode;
  allAccountsByBp?: string[] | null;
  allAccountsByCompany?: ToolsBpAssetManagementShareV30RequestAllAccountsByCompanyInner[] | null;
}

/**
 * com.bytedance.ads.model.ToolsBpAssetManagementShareV30RequestAccountInfosInner
 *
 * ToolsBpAssetManagementShareV30RequestAccountInfosInner
 */
export interface ToolsBpAssetManagementShareV30RequestAccountInfosInner {
  accountId?: number | null;
  accountType?: AccountInfoAccountType;
  [property: string]: any;
}

export enum AccountInfoAccountType {
  AD = 'AD',
  BP = 'BP'
}

/**
 * com.bytedance.ads.model.ToolsBpAssetManagementShareV30RequestAllAccountsByCompanyInner
 *
 * ToolsBpAssetManagementShareV30RequestAllAccountsByCompanyInner
 */
export interface ToolsBpAssetManagementShareV30RequestAllAccountsByCompanyInner {
  accountType?: AccountInfoAccountType;
  companyId?: number | null;
  [property: string]: any;
}

/**
 * 资产类型 可选值:
 *
 * APPLETS 微信小程序
 * WECHAT_GAME 微信小游戏
 * BYTED_APPLETS 字节小程序
 * BYTED_GAME 字节小游戏
 */
export enum AssetType {
  Applets = 'APPLETS',
  BytedApplets = 'BYTED_APPLETS',
  BytedGame = 'BYTED_GAME',
  WechatGame = 'WECHAT_GAME'
}

/**
 * 共享类型 可选值:
 *
 * BP_ALL_ACCOUNTS 组织内所有账户共享
 * COMPANY_ALL_ACCOUNTS 公司主体内所有账户共享
 * PART 指定账户共享
 */
export enum ShareMode {
  BP_ALL_ACCOUNTS = 'BP_ALL_ACCOUNTS',
  COMPANY_ALL_ACCOUNTS = 'COMPANY_ALL_ACCOUNTS',
  PART = 'PART'
}

export interface AccountAllCompanyInfoReq {
  /**
   * 账号id
   */
  accountId: number;
  /**
   * 页数
   */
  pageNum?: number;
  /**
   * 数据条数
   */
  pageSize?: number;
}

/**
 * 获取工作台（原纵横组织）下所有主体接口
 */
export interface AccountAllCompanyInfoResp {
  /**
   * 消息状态码
   */
  code?: number | null;
  /**
   * 消息内容
   */
  msg?: null | string;
  /**
   * 列表数据
   */
  rows?: [] | null;
  /**
   * 汇总数
   */
  sum?: [] | null;
  /**
   * 总记录数
   */
  total?: number | null;
  [property: string]: any;
}
